import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.io.IOException;

@WebServlet("/login")
public class LoginServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        // 处理用户请求
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        // 判定用户名或者密码是否正确
        // 正常来说这个判定操作是要放到数据库中进行存取的
        // 假设有效的用户名和密码是 "zhangsan" "123" 这里直接写死
        // 使用 用户名.equals 不会发生空指针异常   username.equals("zhangsan")如果username是空 那么运行时就会发生空指针异常
        if ("zhangsan".equals(username) && "123".equals(password)) {
            // 登录成功
            // 创建会话 并保存必要的身份信息
            HttpSession httpSession = req.getSession(true);
            // 往会话中存储键值对 必要的身份信息
            httpSession.setAttribute("username", username);
            // 初始情况下 把登录次数设为 0
            httpSession.setAttribute("count", 0);
            // 这里setAttribute()第二个参数也是object 但是Integer就会触发java自动装箱机制自动把0转化成Integer
            resp.sendRedirect("index");
        } else {
            // 登录失败!
            resp.getWriter().write("login failed!");
        }
    }
}